搞懂變數作用在哪運作是非常重要的一件事。
作用域就是變數的生存範圍
變數分為全域和區域
var a = 10
function test(){
console.log(a);
}
var obj = {
hello: function() {
test() ;
console.log(a);
},
hello2: function() {
var a = 200;
c=13;
console.log('a='+a);
console.log('c='+c);
test() ;
}
}
test();
obj.hello();
obj.hello2();
console.log('外部c='+c);
在function為作用域內如果沒有宣告變數就使用,他會被提升到全域變數,也就是說原本要使用的變數只是區域內使用
但是沒有經過宣告就使用那他就會變成全域都可使用,這樣就有就有衝突的可能性。
而在作用域內如果沒有找到要使用的變數那他就會往上一層找,還是沒有就會回傳not defined
var a = 10
function test(){
console.log(a);
console.log(b);
}